#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2025/11/2 17:22
# @Author  : summer
# @Email   : 610658552@qq.com
# @File    : filter_wechat_log.py
# @Software: PyCharm
# @Desc    : 微信公众号发送记录过滤器
import django_filters
from wechat.models import WechatLog


class WechatLogFilter(django_filters.FilterSet):
    """微信发送记录过滤器：支持多条件组合查询"""
    # 手机号模糊搜索（忽略大小写）
    phone = django_filters.CharFilter(field_name='phone', lookup_expr='icontains')
    # openid精确匹配（openid是唯一标识，无需模糊）
    openid = django_filters.CharFilter(field_name='openid', lookup_expr='exact')
    # 公众号名称模糊搜索
    wechat_name = django_filters.CharFilter(field_name='wechat_name', lookup_expr='icontains')
    # 模板ID精确匹配
    template_id = django_filters.CharFilter(field_name='template_id', lookup_expr='exact')
    # 发送内容模糊搜索
    content = django_filters.CharFilter(field_name='content', lookup_expr='icontains')
    # 发送状态筛选（0=失败，1=成功）
    is_send = django_filters.NumberFilter(field_name='is_send')
    # 发送时间范围筛选（开始时间 >=）
    send_time_start = django_filters.DateTimeFilter(field_name='send_time', lookup_expr='gte')
    # 发送时间范围筛选（结束时间 <=）
    send_time_end = django_filters.DateTimeFilter(field_name='send_time', lookup_expr='lte')

    class Meta:
        model = WechatLog
        fields = ['phone', 'openid', 'wechat_name', 'template_id', 'content', 'is_send', 'send_time_start', 'send_time_end']